home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1996 Christmas / macformat-045.iso / Shareware Plus / Developers / NGL1.5.0E(fat)DEMO / Sprite Sample(PPC) / Sprite_Sample.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-19  |  3.1 KB  |  101 lines  |  [TEXT/CWIE]

  1. /*============================================================
  2.  
  3.                     N_Sprite sample program
  4.                     
  5. ============================================================*/
  6.  
  7. #include    "N_Library.h"
  8.  
  9. WindowPtr     CreateWindow         (Str255 name);
  10.  
  11. #define        WindowSizeX        640
  12. #define        WindowSizeY        480
  13.  
  14. short        Data_Rsrc = 0;
  15.  
  16. short        NewWindowX;
  17. short        NewWindowY;
  18. long        counter = 0;
  19.  
  20. void main(void)
  21. {
  22.     WindowPtr    window;
  23.     short        x,y;
  24.     long        ww;
  25.     
  26.     ToolboxInit();
  27.     ColorCheck();
  28.     window = CreateWindow("\pN Game Library <Sprite Sample>");
  29.     N_Window_Set(window,NewWindowX,NewWindowY,WindowSizeX,WindowSizeY);            //setup window
  30.     Open_Resource_File(128,1,&Data_Rsrc);
  31.  
  32.     N_Pict_Draw(128,0,0,(GrafPtr)Main_Window,true);
  33.  
  34.     N_Sprite_Set(129,0,128,128,0,1,1,0);                                            //set sprites(0-4)
  35.     N_Sprite_Set(130,1,128,128,0,1,1,0);
  36.     N_Sprite_Set(131,2,32,32,0,1,1,0);
  37.     N_Sprite_Set(132,3,32,32,0,1,1,0);
  38.  
  39.     Close_Resource_File(&Data_Rsrc);
  40.     HideCursor();
  41.     Delay(60,&ww);
  42.     do
  43.     {
  44.  
  45.     x = (GetRandom(0,760) -60);
  46.     y = (GetRandom(0,540) -60);
  47.  
  48.     if (counter>=0 && counter<500)        N_Sp_Put_Win(0,x,y);                        //SP0 normal,overwrite
  49.     if (counter>=500 && counter<1000    )    N_Sp_Put_Win(0x00010000,x,y);                //SP0 Hrev,overwrite
  50.     if (counter>=1000 && counter<1500)    N_Sp_Put_Win(0x00020000,x,y);                //SP0 Vrev,overwrite
  51.     if (counter>=1500 && counter<2000)    N_Sp_Put_Win(0x00030000,x,y);                //SP0 H/V rev,overwrite
  52.  
  53.     if (counter>=2000 && counter<6000)    N_Sp_Put_Win(2,x,y);                        //SP2 normal,overwrite
  54.     if (counter>=6000 && counter<10000)    N_Sp_Put_Win(0x00010002,x,y);                //SP2 Hrev,overwrite
  55.     if (counter>=10000 && counter<14000)    N_Sp_Put_Win(0x00020002,x,y);                //SP2 Vrev,overwrite
  56.     if (counter>=14000 && counter<18000)    N_Sp_Put_Win(0x00030002,x,y);                //SP2 H/V rev,overwrite
  57.  
  58.     if (counter>=18000 && counter<18500)    N_Sp_Put_Win(0x80000001,x,y);                //SP1 normal,overlap
  59.     if (counter>=18500 && counter<19000)    N_Sp_Put_Win(0x80010001,x,y);                //SP1 Hrev,overlap
  60.     if (counter>=19000 && counter<19500)    N_Sp_Put_Win(0x80020001,x,y);                //SP1 Vrev,overlap
  61.     if (counter>=19500 && counter<20000)    N_Sp_Put_Win(0x80030001,x,y);                //SP1 H/rev,overlap
  62.  
  63.     if (counter>=20000 && counter<24000)    N_Sp_Put_Win(0x80000003,x,y);                //SP3 normal,overlap
  64.     if (counter>=24000 && counter<28000)    N_Sp_Put_Win(0x80010003,x,y);                //SP3 Hrev,overlap
  65.     if (counter>=28000 && counter<32000)    N_Sp_Put_Win(0x80020003,x,y);                //SP3 Vrev,overlap
  66.     if (counter>=32000 && counter<36000)    N_Sp_Put_Win(0x80030003,x,y);                //SP3 H/Vrev,overlap
  67.  
  68.  
  69.     if (counter>=36000) counter = 0;
  70.     counter++;
  71.  
  72.     }
  73.     while (!Button());
  74.     ShowCursor();
  75.     ColorRevert();
  76. }
  77.  
  78.  
  79.  
  80.  
  81. WindowPtr CreateWindow (Str255 name)
  82. {
  83.     WindowPtr    window;
  84.     short        centerX,centerY;
  85.     short        windowWidth,windowHeight;
  86.  
  87.  
  88.     window = GetNewWindow (128,nil,(WindowPtr)-1L );
  89.     centerX  = (qd.screenBits.bounds.right -qd.screenBits.bounds.left)/2;
  90.     centerY  = (qd.screenBits.bounds.bottom -qd.screenBits.bounds.top)/2;
  91.     SetWTitle(window,name);
  92.     MoveWindow(window,NewWindowX=centerX-(WindowSizeX/2),NewWindowY=centerY-(WindowSizeY/2),false);
  93.     SizeWindow(window,WindowSizeX,WindowSizeY,TRUE);
  94.  
  95.     ShowWindow(window);
  96.     SetPort((GrafPtr)window );
  97.     return (WindowPtr)window;
  98. }
  99.     
  100.  
  101.